using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("DeckTrayHeroSkinContent")]
	public class DeckTrayHeroSkinContent : DeckTrayContent
	{
		[Attribute38("DeckTrayHeroSkinContent.AnimatedHeroSkin")]
		public class AnimatedHeroSkin : MonoClass
		{
			public Actor Actor => method_3<Actor>("Actor");

			public GameObject GameObject => method_3<GameObject>("GameObject");

			public Vector3 OriginalScale => method_2<Vector3>("OriginalScale");

			public Vector3 OriginalPosition => method_2<Vector3>("OriginalPosition");

			public AnimatedHeroSkin(IntPtr address, string className)
				: base(address, className)
			{
			}

			public AnimatedHeroSkin(IntPtr address)
				: this(address, "AnimatedHeroSkin")
			{
			}
		}

		public GameObject m_root => method_3<GameObject>("m_root");

		public Vector3 m_trayHiddenOffset => method_2<Vector3>("m_trayHiddenOffset");

		public GameObject m_heroSkinContainer => method_3<GameObject>("m_heroSkinContainer");

		public iTween.EaseType m_traySlideSlideInAnimation => method_2<iTween.EaseType>("m_traySlideSlideInAnimation");

		public iTween.EaseType m_traySlideSlideOutAnimation => method_2<iTween.EaseType>("m_traySlideSlideOutAnimation");

		public float m_traySlideAnimationTime => method_2<float>("m_traySlideAnimationTime");

		public string m_socketSound => method_4("m_socketSound");

		public UberText m_currentHeroSkinName => method_3<UberText>("m_currentHeroSkinName");

		public Material m_sepiaCardMaterial => method_3<Material>("m_sepiaCardMaterial");

		public static string ADD_CARD_TO_DECK_SOUND => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "DeckTrayHeroSkinContent", "ADD_CARD_TO_DECK_SOUND");

		public string m_currentHeroCardId => method_4("m_currentHeroCardId");

		public Actor m_heroSkinObject => method_3<Actor>("m_heroSkinObject");

		public Vector3 m_originalLocalPosition => method_2<Vector3>("m_originalLocalPosition");

		public bool m_animating => method_2<bool>("m_animating");

		public bool m_waitingToLoadHeroDef => method_2<bool>("m_waitingToLoadHeroDef");

		public AnimatedHeroSkin m_animData => method_3<AnimatedHeroSkin>("m_animData");

		public DeckTrayHeroSkinContent(IntPtr address, string className)
			: base(address, className)
		{
		}

		public DeckTrayHeroSkinContent(IntPtr address)
			: this(address, "DeckTrayHeroSkinContent")
		{
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void UpdateHeroSkin(EntityDef entityDef, TAG_PREMIUM premium, bool assigning)
		{
			method_9("UpdateHeroSkin", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.ValueType,
				Class276.Enum20.Boolean
			}, entityDef, premium, assigning);
		}

		public void UpdateHeroSkin(string cardId, TAG_PREMIUM premium, bool assigning, Actor baseActor)
		{
			method_9("UpdateHeroSkin", new Class276.Enum20[4]
			{
				Class276.Enum20.String,
				Class276.Enum20.ValueType,
				Class276.Enum20.Boolean,
				Class276.Enum20.Class
			}, cardId, premium, assigning, baseActor);
		}

		public void AnimateInNewHeroSkin(Actor actor)
		{
			method_8("AnimateInNewHeroSkin", actor);
		}

		public void AnimateNewHeroSkinFinished()
		{
			method_8("AnimateNewHeroSkinFinished");
		}

		public void AnimateNewHeroSkinUpdate(float val)
		{
			method_8("AnimateNewHeroSkinUpdate", val);
		}

		public void SetNewHeroSkin(Actor actor)
		{
			method_8("SetNewHeroSkin", actor);
		}

		public new bool PreAnimateContentEntrance()
		{
			return method_11<bool>("PreAnimateContentEntrance", Array.Empty<object>());
		}

		public new bool AnimateContentEntranceStart()
		{
			return method_11<bool>("AnimateContentEntranceStart", Array.Empty<object>());
		}

		public new bool AnimateContentEntranceEnd()
		{
			return method_11<bool>("AnimateContentEntranceEnd", Array.Empty<object>());
		}

		public new bool AnimateContentExitStart()
		{
			return method_11<bool>("AnimateContentExitStart", Array.Empty<object>());
		}

		public new bool AnimateContentExitEnd()
		{
			return method_11<bool>("AnimateContentExitEnd", Array.Empty<object>());
		}

		public void LoadHeroSkinActor()
		{
			method_8("LoadHeroSkinActor");
		}

		public void UpdateHeroSkinVisual(EntityDef entityDef, CardDef cardDef, TAG_PREMIUM premium, bool assigning)
		{
			method_8("UpdateHeroSkinVisual", entityDef, cardDef, premium, assigning);
		}

		public void OnPickEmoteLoaded(CardSoundSpell spell)
		{
			method_8("OnPickEmoteLoaded", spell);
		}

		public void OnPickEmoteFinished(Spell spell, object userData)
		{
			method_8("OnPickEmoteFinished", spell, userData);
		}

		public void ShowSocketFX()
		{
			method_8("ShowSocketFX");
		}

		public void UpdateMissingEffect(bool overriden)
		{
			method_8("UpdateMissingEffect", overriden);
		}
	}
}
